It is well known in the art to widely use fuzzy logic control based on fuzzy inference in controlling various consumer electronics, household appliances, automobiles, cameras and the like. In the fuzzy control, in general, if fuzzy conception or fuzzy condition "A" holds well, then control "X" is executed. This proposition is represented by a fuzzy rule "if A then X". More specifically, control "X" is executed in a degree determined by how well a fact indicated by input data conforms to fuzzy conception "A". In this fuzzy rule, A is referred to as "antecedent" and X as "consequent". The degree of conformity of the fact to fuzzy conception A is called "grade". The grade is a function of input data. Therefore, it is necessary to calculate such grade with regard to each fuzzy conception. An input label is used for identifying each input fuzzy conception or condition. Accordingly a fuzzy conception is referred to also as an input label. An input label membership function defines the relationship between input data and an input label, and is stored in an MF-ROM. As shown in FIG. 5, a grade calculating circuit is provided in the fuzzy inference system, which calculates input label grades (gi) based on input data (Xi) and input label membership functions. The calculated grades are supplied to a min-max computing circuit, where output label grades are computed and then supplied to defuzzification circuit. The final output data are provided from the defuzzification circuit.
In the fuzzy inference system mentioned above, multiple input channels are provided to receive multiple input data such as velocity, pressure and temperature. And multiple input labels are defined in each of the input channels. The system also has multiple output channels to produce multiple output data such as on/off switch signal and valve control signal. And multiple output labels are also defined in each of the output channels. Therefore the total number of the input label grades, each of which needs calculation, becomes significantly large, being equal to the number of input channels times the number of input labels per input channel.
A membership function for each of the input labels is previously stored in MF-ROM. A grade calculating circuit is provided in the fuzzy inference system, which calculates input label grades (gi) based on input data (Xi) and input label membership functions. The membership functions may take the forms as .DELTA. type, Z type, S type and .pi. type, each consisting of flat line portions and inclined line portions. For example, a .DELTA. type function consists of flat portions having the lower limit grade g.sub.min, and inclined line portions as shown in FIG. 4A. In FIG. 4A, ##EQU1## In FIG. 4B, a Z type function, ##EQU2## In FIG. 4C, a .pi. type function, ##EQU3##
Prior art grade calculating circuit judges the magnitude relationship between input data (Xi) and a plurality of bending points (X.sub.0, X.sub.1, X.sub.2, X.sub.3). Depending on the judgment, interpolation calculations such as (Xi-X.sub.0)/(X1-X.sub.0) are performed. In order to perform the judgment on magnitude relationships, it was necessary to prepare memory area for storing all four bending points for each of the input membership functions. In order to perform the interpolation calculations, it was necessary to prepare memory area for storing two inclinations. Therefore, a large 6 byte data field was needed in total for each of the membership functions. However, memory size is required to be as small as possible.
Prior art fuzzy control systems have been used mainly in low speed control applications such as home appliances. However, when fuzzy control systems are desired to be used in high speed and relatively complicated control applications such as cruise controls or suspension control of vehicles and the like, computing speed should be significantly improved to typically 1000 times faster than the conventional one. The improvement of the computation speed is achieved by synergistically tuning three computation stages: the grade calculations of input labels, the min-max operations performed on the input label grades to obtain output label grades, and the calculations of center of gravity of output label's membership functions.
Even in a relatively small 8-bit circuit, the division of (Xi-X.sub.0)/(X1-X.sub.0) typically needs at least 8-10 clock cycles, which is an obstacle to speed up grade calculating circuit. If 6 byte data are processed in parallel in order to reduce the operation time, a large number of hardwares such registers, comparators or logic circuits should be arranged, resulting too much of hardwares.